﻿/*
**************图片预加载插件******************
///参数设置：
scaling     是否等比例自动缩放
width       图片最大高
height      图片最大宽
loadpic     加载中的图片路径
*/
jQuery.fn.LoadImage = function(scaling, width, height, loadpic, fade){
  if (loadpic == null) {
    loadpic = "gallery/loading.gif";
  }
  return this.each(function() {
    var t = $(this);
    var src = $(this).attr("src");
    var img = new Image();
    //alert("Loading...")
    img.src = src;
    //自动缩放图片
    var autoScaling = function() {
      if (scaling) {
        if (img.width > 0 && img.height > 0) {
          if (img.width / img.height >= width / height) {
            if (img.width > width) { 
              t.width(width);
              t.height((img.height * width) / img.width);
            } else { 
              t.width(img.width); 
              t.height(img.height); 
            } 
          } else { 
            if (img.height > height) { 
              t.height(height); 
              t.width((img.width * height) / img.height);
            } else { 
              t.width(img.width); 
              t.height(img.height); 
            } 
          }
        }
      }
    }
    //处理ff下会自动读取缓存图片
    if (img.complete) {
//      alert("getToCache!");
      autoScaling();
      if (!fade) {
        t.hide();
        t.attr("src", this.src);
        t.fadeIn("slow");
        t.show();
      } else {
        t.attr("src", this.src);
      }
      return;
    }
    $(this).attr("src", "");
    if (!fade) {
      $('#loading').attr("class", 'loading');
      var loading = $("<img alt=\"加载中...\" title=\"图片加载中...\" src=\""+loadpic+"\" style=\"-moz-box-shadow:0px 0px 0px 0px #666; -webkit-box-shadow:0px 0px 0px 0px #666; box-shadow: 0px 0px 0px 0px #666;\"></img>");
      t.hide();
      t.after(loading);
      $(img).load(function() {
        autoScaling();
        t.attr("src", this.src);
        loading.remove();
        $('#loading').attr("class", 'load');
        t.fadeIn("slow");
        t.show();
        //alert("finally!")
      });
    } else {
      t.hide();
      $(img).load(function() {
        autoScaling();
        t.attr("src", this.src);
        t.fadeIn("slow");
        t.show();
        //alert("finally!")
      });
    }
  });
  }